namespace nu.Model
{
    using System.Collections.Generic;

    public abstract class PackageStateBase : IPackageState
    {
        private readonly Package _package;
        private string _hash = null;

        public PackageStateBase(Package package)
        {
            this._package = package;
        }

        public Package Package
        {
            get { return _package; }
        }

        public abstract string Name
        {
            get;
        }

        public virtual string Hash
        {
            get { return _hash; }
            protected set { _hash = value; }
        }

        public abstract PackageItem AddFileItem(string filePath, List<PackageItem> items);
    }
}